package com.itheima.homework;

public class Test07 {
    /*
    【编号：809】 我国的居民身份证号码，由由十七位数字本体码和一位数字校验码组成。
        请定义方法判断用户输入的身份证号码是否合法，并在主方法中调用方法测试结果。
        规则为：号码为18位，不能以数字0开头，前17位只可以是数字，最后一位可以是数字或者大写字母X。
     */
    public static void main(String[] args) {
        boolean res1 = idNum("340402199210260513");
        boolean res2 = idNum("a4041419921026051X");
        boolean res3 = idNum("341b0219921026051a");
        System.out.println("res1 = " + res1);
        System.out.println("res2 = " + res2);
        System.out.println("res3 = " + res3);
    }

    public static boolean idNum(String id) {
        if (id.length() != 18) {
            return false;
        }
        if (id.startsWith("0")) {
            return false;
        }

        for (int i = 0; i < id.length() - 1; i++) {
            if (id.charAt(i) < '0' || id.charAt(i) > '9') {
                return false;
            }
        }
        if (id.charAt(id.length() - 1) >= '0' && id.charAt(id.length() - 1) <= '9' || id.endsWith("X")) {
            return true;
        }
        return false;
    }
}
